package com.hw.protocol.tool.model.entity;

import lombok.Data;

import java.io.Serializable;

/**
 * @author : lihy
 * @date : 2023/8/15 10:11
 * description: 华北协议
 */
@Data
public class HbProtocol implements Serializable {

    private static final long serialVersionUID = 14240488581167186L;
    /**
     * 帧头
     */
    private byte fh = (byte) 0x68;

    /**
     * 版本
     */
    private byte version;

    /**
     * 设备类型
     */
    private byte type;

    /**
     * 设备序列号 8位BCD码
     */
    private String devSerial;

    /**
     * 密钥编号 0-9
     */
    private byte key = 0;

    /**
     * 命令 8位2进制
     * Bit7：方向标识。0——上行报文，1——下行报文
     * Bit6	Bit5：保留
     * Bit4	Bit3 Bit2 Bit1 Bit0：功能码
     *      01H：数据上传
     *      02H：数据下发
     *      03H：续传
     *      04H：读数据
     *      05H：写数据
     *      07H：读记录
     */
    private byte cmd;

    /**
     * 数据对象
     */
    private short objId;

    /**
     * 数据长度
     */
    private short length;

    /**
     * 数据
     */
    private byte[] data;

    /**
     * 校验码
     */
    private byte[] crc;

    /**
     * 包尾
     */
    private byte end = 0x16;

}
